#!/bin/bash 

# 启动平滑过度agent。
# 
# 备份流量代理。整包备份。
# 执行老代理uninstall.sh脚本。并确保成功。
# 删除老代理目录。
# 解压新代理到对应目录。
# 执行新代理install.sh脚本。并确保成功。
# 删除临时目录。
# 
# sleep 10s 后结束平滑过度agent
# 更新任务程序退出。

RUN_PATH=`cd $(dirname $0); pwd -P`
# 修改进程工作目录
cd $RUN_PATH

transitdir=dbagent_transit
tmpdir=dbagent_tmp
backupdir=dbagent_old
origindir=dbagent
newpkg=dbagent.pkg
logfile=update.log
rootdir=${RUN_PATH}/..

# 创建临时目录并备份文件
# rm -rf $rootdir/$tmpdir 
# mkdir $rootdir/$tmpdir
# cp $rootdir/$origindir/$newpkg $rootdir/$tmpdir/
# cp $rootdir/$origindir/update.sh $rootdir/$tmpdir/

# 启动平滑过度agent。
echo "start transit agent..." >> $rootdir/$tmpdir/$logfile
rm -rf $rootdir/$transitdir
cp -rf $rootdir/$origindir $rootdir/$transitdir
`cd $rootdir; pwd -P`/$transitdir/monitor &

# 备份流量代理。整包备份。
echo "backup for old agent..." >> $rootdir/$tmpdir/$logfile
rm -rf $rootdir/$backupdir
cp -r $rootdir/$origindir $rootdir/$backupdir

# 执行老代理uninstall.sh脚本。并确保成功。
echo "uninstall old agent..." >> $rootdir/$tmpdir/$logfile
$rootdir/$origindir/uninstall.sh

# 删除老代理目录。
echo "remove old agent..." >> $rootdir/$tmpdir/$logfile
rm -rf $rootdir/$origindir

# 解压新代理到对应目录。
echo "create new agent..." >> $rootdir/$tmpdir/$logfile
tar -pxzf $rootdir/$tmpdir/$newpkg -C $rootdir/

# 执行新代理install.sh脚本。并确保成功。
echo "install new agent..." >> $rootdir/$tmpdir/$logfile
$rootdir/$origindir/install.sh

# 删除临时目录。
# rm -rf $rootdir/$tmpdir

# sleep 10s 后结束平滑过度agent
sleep 10s
echo "stop transit agent..." >> $rootdir/$tmpdir/$logfile
$rootdir/$transitdir/dbagent_stop.sh
rm -rf $rootdir/$transitdir

exit 0
